package io.renren.modules.study.service;


import io.renren.modules.study.entity.PcPageBean;
import io.renren.modules.study.entity.CourseBody;
import io.renren.modules.sys.dto.CollectDto;
import io.renren.modules.sys.dto.TeacherAndCourseMustKnow;
import io.renren.modules.study.entity.Course;
import io.renren.modules.study.entity.CourseClassification;
import io.renren.modules.study.entity.CourseComment;
import io.renren.modules.sys.entity.UserCourseBuyHistory;

import java.util.List;
import java.util.Map;

/**
 * 课程
 *
 * @author 薛冰
 * @email
 * @date
 */
public interface CourseService {

    List getCourseList(Map<String, Object> params);

    PcPageBean<Course> getAllCourseByOnce(Map<String, Object> params);

    PcPageBean<Course> getCourseAndTeacherName(Map<String, Object> params);

    PcPageBean<CourseComment> getCourseCommentByCourseIdPc(Map<String, Object> params);

    PcPageBean<Course> pcGetMyCollectionCouseList(Map<String, Object> params);

    PcPageBean<Course> pcGetMyLearnCouseList(Map<String, Object> params);

    PcPageBean<CourseComment> pcGetCourseCommentByUserId(Map<String, Object> params);

    PcPageBean<Course> pcGetCourseByTitleLike(Map<String,Object> params);

    Map getsearchData();

    Course getCourseById(Integer id);

    Course getCourseById(Integer id, Integer userId);

    int addCourseCount(CollectDto course);

    int delCourseCount(CollectDto course);

    void addCollectionCourse(CollectDto course);

    void delCollectionCourse(CollectDto course);

    List getMyCollectionCouseList(CollectDto collectDto);

    List getMyCollectionCouse(CollectDto collectDto);

    TeacherAndCourseMustKnow getTeacherAndCourseMustKnow(Course course);

    List checkIsCollection(CollectDto collectDto);

    List getCourseByTitleLike(Map map);

    void saveCourseComment(CourseComment courseComment);

    void delCourseComment(CourseComment courseComment);

    List getCourseComment(Map map);

    List getCourseCommentByUserId(Map map);

    CourseComment getUserComment(CourseComment courseComment);

    CourseClassification getClassificationChild(int parentId);

    List getClassification(Integer parentId);

    List getFirstClassification();

    List getCourses(Map map);

    int getClassificationIdByName(Map map);

    List courseListByHot(Map map);

    List courseListByTime(Map map);

    List courseListByHotDesc(Map map);

    List<Course> courseListByTimeDesc(Map map);

    List<Course> courseListByPrice(Map map);

    List<Course> courseListByPriceDesc(Map map);

    List<Course> getFirstCourseListByHot(Map map);

    List<Course> getFirstCourseListByHotDesc(Map map);

    List<Course> getFirstCourseListByTime(Map map);

    List<Course> getFirstCourseListByTimeDesc(Map map);

    List<Course> getFirstcourseListByPrice(Map map);

    List<Course> getFirstcourseListByPriceDesc(Map map);

    void addOrderInfo(UserCourseBuyHistory userCourseBuyHistory);

    List getLearnBannerData();

    CourseBody getCourseBodyById(Map map);

    void feedBack(Map map);

    int getCourseCount();

    List getAllCourse();

    List getCourseIdList();

    List getDricationList();

    List getCourseIdByDirectionId(int directionId);

    Course getCoursesNameAndOther(int oneDriectionCourseId);
}
